/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.carrito.jsf.bo;

import com.carrito.jdbc.dao.ImplPedido;
import com.carrito.jsf.bean.BeanPedido;
import com.carrito.jsf.persistence.Pedido;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;

/**
 *
 * @author oscarc
 */
public class PedidoImplBO implements PedidoBO {

    @Autowired
    private ImplPedido pedidoDAO;   //Mediante inyeccion de dependecias a traves de Spring en el applicationContext

    @Override
    public void insertar(BeanPedido obj) {
        Pedido pedido = new Pedido();
        pedido.setNumero(obj.getNumero());
        pedido.setFecha(obj.getFecha());
        pedido.setSituacion(0);
        pedido.setObs(obj.getObs());
        pedido.setCliente(obj.getCliente());
        getPedidoDAO().insertar(pedido);//llama al metodo insertar
    }

    @Override
    public void anular(BeanPedido obj) {
        Pedido pedido = new Pedido();
        pedido.setNumero(obj.getNumero());
        pedido.setFecha(obj.getFecha());
        pedido.setSituacion(1);
        pedido.setObs(obj.getObs());
        pedido.setCliente(obj.getCliente());
        getPedidoDAO().eliminar(pedido);
    }
    /*
    Metodo que actualiza los datos
     */

    @Override
    public void actualizar(BeanPedido obj) {
        Pedido pedido = new Pedido();
        pedido.setNumero(obj.getNumero());
        pedido.setFecha(obj.getFecha());
        pedido.setSituacion(0);
        pedido.setObs(obj.getObs());
        pedido.setCliente(obj.getCliente());
        getPedidoDAO().actualizar(pedido);
    }

    /*
    Metodo que consulta los articulos clasificacion
     */
    @Override
    public List<BeanPedido> consultar() {
        List<BeanPedido> lista = new ArrayList<BeanPedido>();
        for (Pedido obj : getPedidoDAO().consultar()) {
            BeanPedido bean = new BeanPedido();
            bean.setNumero(obj.getNumero());
            bean.setFecha(obj.getFecha());
            bean.setSituacion(obj.getSituacion());
            bean.setCliente(obj.getCliente());
            bean.setObs(obj.getObs());
            lista.add(bean);
        }
        return lista;
    }

    /**
     * @return the pedidoDAO
     */
    public ImplPedido getPedidoDAO() {
        return pedidoDAO;
    }

    /**
     * @param pedidoDAO the pedidoDAO to set
     */
    public void setPedidoDAO(ImplPedido pedidoDAO) {
        this.pedidoDAO = pedidoDAO;
    }
}
